Method of decoding a turbo-code encoded signal in a receiver and corresponding receiver

ABSTRACT

A method is provided for decoding a turbo-code encoded signal in a receiver. According to the method, the signal is received from a transmission channel, and the signal is digitally turbo-code decoded. Additionally, a quality information representative of conditions of the channel state estimation is dynamically determined, and the quality information is dynamically compared with a predetermined criteria for defining good or bad estimation conditions. A Maximum-A-Posteriori algorithm in the logarithmic domain is dynamically selected for good estimation conditions, or an approximation of the Maximum-A-Posteriori algorithm in the logarithmic domain is dynamically selected for bad estimation conditions. Also provided is a receiver that implements such a decoding method.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application is based upon and claims priority from EuropeanPatent Application No. 02023841.6, filed Oct. 24, 2002, the entiredisclosure of which is herein incorporated by reference.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates to channel decoding techniques, andmore specifically to a method of decoding a turbo-code encoded signal ina receiver and a corresponding receiver.

[0004] 2. Description of Related Art

[0005] The present invention is directed in general to the field ofwireless communication systems, and more particularly to CDMA systemssuch as the different CDMA based mobile radio systems like CDMA 2000,WCDMA (Wide Band CDMA) or the IS-95 standard.

[0006] In mobile radio systems, channel coding is used to make the datatransmission over the mobile radio channel more robust against noise andinterference. Standard channel coding schemes used in existing mobileradio systems like GSM are Convolutional Coding, Reed Salomon Coding andother kinds of block codes.

[0007] The third generation mobile radio system specifies Convolutionalcodes as well as Turbo-codes as channel coding techniques [3GPP,Technical Specification Group Radio Access Network, Multiplexing andchannel coding (FDD), 3G TS 25.212 version 3.5.0 (2000-12), Release1999].

[0008] In Turbo-code encoders, forward error correction is enabled byintroducing parity bits. For Turbo-codes, the original information,denoted as systematic information, is transmitted together with theparity information. The encoder for 3GPP is two recursive systematicconvolutional (RSC) encoders with constraint length K=4, which can alsobe interpreted as 8-state finite state machines. The first RSC encoderworks on the block of information in its original sequence, the secondone in an interleaved sequence.

[0009] On the receiver side, there is a corresponding component decoderfor each of them. Each component decoder implements aMaximum-A-Posteriori (MAP) Algorithm, and is usually a Soft-in-Soft-out(SISO) decoder.

[0010] Each block is decoded in an iterative manner. The systematicinformation and the parity information serve as inputs of the firstcomponent decoder MAP1. The soft-output of MAP1 reflects its confidenceon the received bits of having been sent either as ‘0’ or ‘1’. Theseconfidences are interleaved in the same manner as in the encoder andpassed to the second component decoder MAP2 as a-priori information. Thesecond component decoder uses this information to bias its estimationcomprising the interleaved systematic information and the parityinformation of the second encoder. The soft-outputs are again passed onto MAP1, and so on. The exchange continues until a stop criterion isfulfilled. Stop criteria range from simple cases, such as “fixed numberof iterations”, over cyclic redundancy check (CRC) to rather complexstatistical analysis.

[0011] Implementation issues for Turbo-decoder architectures using theMAP algorithm have already been discussed in several papers and are wellknown [A. Worm, Implementation Issues of Turbo-Decoders, PhD thesis,Institute of Microelectronic Systems, Department of ElectricalEngineering and Information Technology, University of Kaiserslautern,Forschungsberichte Mikroelektronik, Bd.3, Germany, 2001].

[0012] The MAP algorithm is transformed into the logarithmic domain toreduce operator strength [S. S. Pietrobond and A. S. Barbulescu, ASimplification of the Modified Bahl Decoding Algorithm for SystematicConvolutional Codes, Proc. International Symposium on Information Theoryand its Applications, pages 1073-1077, Sydney, Australia, November 1994]Multiplications become additions, and additions are replaced by amodified comparison. It has a forward recursion, a backward recursionand soft-output calculation.

[0013] Two well known MAP algorithms work in the logarithmic domain. Thefirst one is the “LogMAP” algorithm and shows the same performance asthe ideal MAP algorithm using exponential functions.

[0014] The second one is the “MaxLogMAP” algorithm and is a sub-optimumversion of the LogMAP algorithm.

[0015] In principle, the performance of a LogMAP based turbo-codedecoder is better than the performance of a MaxLogMAP based turbo-codedecoder. However, under certain circumstances, the performance of theMaxLogMAP based decoder is much more robust and exceeds the performanceof the LogMAP based decoder.

[0016] In conventional systems, only one of the above-mentioned decodingalgorithms are used, either the LogMAP or the MaxLogMAP algorithm.

SUMMARY OF THE INVENTION

[0017] In view of these drawbacks, it is an object of the presentinvention to overcome the above-mentioned drawbacks and to providedynamic switching in a turbo-decoder so that the overall turbo-decoderalways operates in the best mode (e.g., either LogMAP or MaxLogMAP)depending on the transmission conditions.

[0018] One embodiment of the present invention provides a method fordecoding a turbo-code encoded signal in a receiver. According to themethod, the signal is received from a transmission channel, and thesignal is digitally turbo-code decoded. Additionally, a qualityinformation representative of conditions of the channel state estimationis dynamically determined, and the quality information is dynamicallycompared with a predetermined criteria for defining good or badestimation conditions. A Maximum-A-Posteriori algorithm in thelogarithmic domain is dynamically selected for good estimationconditions, or an approximation of the Maximum-A-Posteriori algorithm inthe logarithmic domain is dynamically selected for bad estimationconditions.

[0019] Another embodiment of the present invention provides a receiverthat includes reception means for receiving a turbo-code encoded signalfrom a transmission channel, and digital processing means coupled to thereception means. The digital processing means includes demodulationmeans and turbo-code decoding means. The turbo-code decoding means iscontrollably configurable, in response to a control signal, between afirst configuration that implements a Maximum-A-Posteriori algorithm inthe logarithmic domain and a second configuration that implements anapproximation of the Maximum-A-Posteriori algorithm in the logarithmicdomain. The digital processing means further includes auxiliaryprocessing means for determining a quality information representative ofconditions of the channel state estimation, and control means. Thecontrol means compares the quality information with a predeterminedcriteria and delivers the control signal with a first valuecorresponding to good estimation conditions or with a second valuecorresponding to bad estimation conditions.

[0020] Other objects, features and advantages of the present inventionwill become apparent from the following detailed description. It shouldbe understood, however, that the detailed description and specificexamples, while indicating preferred embodiments of the presentinvention, are given by way of illustration only and variousmodifications may naturally be performed without deviating from thepresent invention.

BRIEF DESCRIPTION OF THE DRAWINGS

[0021]FIG. 1 shows a UMTS Turbo-code encoder;

[0022]FIG. 2 shows a generic Turbo decoder;

[0023]FIG. 3 shows a receiving chain of a mobile phone according to apreferred embodiment of the present invention;

[0024]FIG. 4 illustrates in more detail the internal architecture of achannel decoder according to one embodiment of the present invention;and

[0025]FIG. 5 illustrates a process according to one embodiment of thepresent invention for selecting between LogMAP and MaxLogMAP algorithmsdepending on the speed of a mobile phone.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0026] Preferred embodiments of the present invention will be describedin detail hereinbelow with reference to the attached drawings.

[0027] Preferred embodiments of the present invention provide methods ofdecoding a turbo-code encoded signal in a receiver and correspondingreceivers. One preferred embodiment provides a method in which anincident turbo-code encoded signal is received from a transmissionchannel and digitally turbo-code decoded. There is dynamicallydetermined a quality information representative of the conditions of thechannel state estimation, and the quality information is dynamicallycompared with a predetermined criteria for defining a binary resultcorresponding to good or bad estimation conditions. The turbo-codedecoding step includes dynamically selecting a Maximum-A-Posteriorialgorithm in the logarithmic domain (e.g., the LogMAP algorithm) in thepresence of good conditions, or an approximation of theMaximum-A-Posteriori algorithm in the logarithmic domain (e.g., theMaxLogMAP algorithm) in the presence of bad conditions.

[0028] Preferably, the conditions of the channel state estimation arepredicted by knowing the quality of the Signal to Interference Ratio(SIR) estimation.

[0029] More precisely, according to an embodiment of the presentinvention, the determination step comprises determining an errorinformation representing an error of the SIR estimation, the errorinformation being the quality information. Additionally, thepredetermined criteria comprises at least one predetermined threshold.

[0030] In one embodiment, the error information is the absolute value ofthe error of the SIR estimation, and the LogMAP algorithm is selected ifthe absolute value of the error is smaller than the threshold, whereasthe MaxLogMAP algorithm is selected if the absolute value of the erroris greater than or equal to the threshold.

[0031] Preferably, the threshold is chosen so that it is smaller than orequal to about 0.5 dB, and more preferably it is equal to about 0.2 dB.

[0032] One possibility for calculating the absolute value of the errorof the SIR estimation is calculating the variance of the SIR estimation.

[0033] However, the inventors have observed that it can be much simplerto predict the conditions of the channel state estimation by knowing thespeed of the receiver (when the receiver is mobile) or the speed of amobile terminal cooperating with the receiver (when the receiver is abase station, for example).

[0034] According to an embodiment of the present invention in which thereceiver is mobile, for example a cellular mobile phone, and belongs toa wireless communication system, the determination step comprises amobile receiver speed estimation, the speed being the error information.

[0035] According to another embodiment of the present invention in whichthe receiver is a base station cooperating with a mobile terminal, forexample a cellular mobile phone, the determination step comprises amobile terminal speed estimation, the speed being the error information.

[0036] When the speed is considered as an error information, thepredetermined criteria can comprise also the delay profile of thetransmission channel. More precisely, the delay profile can be used fordetermining thresholds used to select either the LogMAP algorithm or theMaxLogMAP algorithm.

[0037] Another preferred embodiment of the present invention provides areceiver that includes reception means for receiving an incidentturbo-code encoded signal from a transmission channel, and digitalprocessing means connected to the reception means and includingdemodulation means and turbo-code decoding means. The turbo-codedecoding means is controllably configurable, in response to a binarycontrol signal, between a first configuration implementing aMaximum-A-Posteriori algorithm in the logarithmic domain (e.g., LogMAPalgorithm), and a second configuration implementing an approximation ofthe Maximum-A-Posteriori algorithm in the logarithmic domain (e.g.,MaxLogMAP) algorithm. The digital processing means further includesauxiliary processing means for dynamically determining a qualityinformation representative of the conditions of the channel stateestimation, and control means for dynamically comparing the qualityinformation with a predetermined criteria and delivering the binarycontrol signal having a first value corresponding to good estimationconditions and a second value corresponding to bad estimationconditions. The turbo-code decoding means is dynamically switched in thefirst configuration when the binary control signal has the first value,and in the second configuration when the binary control signal has thesecond value.

[0038] According to an embodiment of the present invention, theauxiliary processing means includes means for determining an errorinformation representing an error of the Signal to Interference Ratioestimation, the error information being the quality information, and thepredetermined criteria comprises at least one predetermined threshold.

[0039] According to one embodiment of the present invention, the errorinformation is the absolute value of the error of the SIR estimation andthe control signal has the first value if the absolute value of theerror is smaller than the threshold, and the second value if theabsolute value of the error is greater than or equal to the threshold.

[0040] In one embodiment in which the receiver is mobile and belongs toa wireless communication system, the auxiliary processing means includesspeed estimation means for determining the speed of the mobile receiver,the speed being the error information.

[0041] In another embodiment in which the receiver belongs to a wirelesscommunication system and cooperates with a mobile terminal, theauxiliary processing means includes speed estimation means fordetermining the speed of the mobile terminal, the speed being the errorinformation.

[0042] Exemplary embodiments of the present invention will now bedescribed in detail with reference to FIGS. 1-5. Before explaining thedynamic switching of the decoding algorithm according to a preferredembodiment of the present invention, some well known general features ofthe two algorithms being used will be explained for ease ofunderstanding.

1. Encoding

[0043] 1.1. General Considerations and Convolutional Encoding

[0044] Convolutional encoding is performed by calculating the modulo-2sum of the input values of the current and/or selected previous timesteps. Implementation therefore is straightforward and mainly uses ashift register and a couple of exclusive-OR gates. Through the way thoseare switched, different kinds of convolutional codes can be realized,such as the following.

[0045] Systematic Codes: One of the output streams is equal to the inputstream, the systematic information.

[0046] Non-Systematic Codes (NSC): Each output is a parity information.Parity information is produced by taking the modulo-2 sum of shiftregister entries stating the history of the encoding process.

[0047] Recursive Codes: A special parity signal is produced and fed backin conjunction with the systematic input.

[0048] Non-Recursive Codes: No such feedback loop exists.

[0049] An instance of a convolutional encoder is defined by acombination of these properties, the memory depth (constraint length)and the logical functions used to produce the parity information. Theseproperties are described through generator polynomials.

[0050] 1.2. Code-Trellis

[0051] A code trellis is the unrolled state chart of a finite-statemachine. The number of states the encoder can be in (N) is a function ofthe constraint length K.

N=2K−1

[0052] Depending on the nature of the code (RSC, NSC, and so on) onlycertain transitions are possible. A trellis is used to depict thosetransitions.

[0053] 1.3. Trellis-Termination

[0054] For the considered codes the initial state of the trellis isalways known to be the all-zero state. Without taking any precautions,the encoder ends in an arbitrary state, leaving no hint of where tostart the backward recursion. This can be counteracted by driving theencoder into a defined final state. Reaching the final state (e.g., theall-zero state) can be achieved by appending a sequence which steers theencoder towards the final state as fast as possible. This sequence isalso dependent on the state the encoder is in after the last informationbit has been coded. The length of this sequence is equal to K−1; thetransmitted bits are called tailbits.

[0055] 1.4. Interleaving

[0056] Trellis based decoding is very vulnerable to burst errors. If asequence of transmitted bits is corrupted, the decoding becomesinaccurate. Therefore, a scheme to break up the neighborhood-relationsis applied: the interleaving.

[0057] The key idea behind interleaving is to transmit the bits in adifferent order than they are produced or consumed. For instance, whilebit 4 is encoded consecutively with its neighbors 3 and 5, it might benext to 312 and 1021 during transmission. A burst error in the channeleffects bits 312, 4, and 1021. On the receiver side, these errors arespread again through the deinterleaver, which restores the initialorder. Thus, the decoding is less affected.

[0058] 1.5. Turbo-Encoding

[0059] A Turbo-code encoder is two constituent convolutional encodersand an interleaver. The convolutional codes are fixed to be the RSCcodes of rate ½ and generator polynomials (13,15/(octal notation)introduced before.

[0060] The systematic information of the second encoder is nottransmitted because it can be reconstructed (by deinterleaving) from thesystematic output of the first encoder. By this a rate of R=⅓ isachieved. FIG. 1 shows the detailed UMTS Turbo-code encoder. The trellistermination leads each encoder into its final state separately. Thisdissolves the dependency between the systematic information of the firstand second encoder for the tailbits, because these lead each encoderindependent from the other by activating the respective switch (see FIG.1). Hence the last six bits per encoder (systematic and parity for each)have to be transmitted separately. This results in a total overhead of12 bits per block.

2. Decoding

[0061] Decoding convolutional codes is keeping track of the transitionsthat took place in the encoder. From those the input symbols which havebeen sent are deducted. Due to the degradations caused by the channel,only estimates of the systematic and parity bits are available, whichwill both be called channel values here. There are two different kindsof outputs.

[0062] Hard values: They merely indicate if a symbol is supposed to be“1” or “0”.

[0063] Soft values: These also deliver a measure for the reliability ofthe decision (the hard decision is extend by the probability that thedecision is correct).

[0064] For Turbo decoding, only soft-in values are relevant. Based onthe channel values, probabilities can be computed that certaincombinations of systematic and parity bit occurred. From this andconsidering the encoder history, the probability that the encoder was ina given state at a given time-step can be computed.

[0065] Two approaches exist to deal with those state-probabilities. Themaximum likelihood based Viterbi algorithm uses them to search the mostlikely code-word. For this it traverses the trellis from the all-zerostate to the end state and looks for the most likely sequence. Thestates chosen for the survivor path indicate the most likely sequence ofsymbols that has been sent. Hence a Viterbi Decoder is a sequenceestimator.

[0066] The maximum-a-posteriori (MAP) algorithm on the other sideestimates the probability that the encoder was in the given state andthat the current state leads to the final state given the remainder ofthe channel values. This can be efficiently computed by a forward andbackward recursion over the trellis. Afterwards, for each bit theprobabilities for those states associated with a systematic “0” areadded and compared to those associated with a “1”. The symbol with thehigher probability is assumed to be the sent one. As this works on bitrather than on sequence level, it is called symbol estimation.

[0067] Turbo decoding demands for soft-output of the convolutionaldecoders as well. Suitable algorithms are the MAP algorithm and the SOVA(Soft Output Viterbi Algorithm).

[0068] The SOVA is usually implemented as a two-step algorithm, with aViterbi algorithm part and a part responsible for calculating thesoft-outputs. The state metric unit of the part realizing the Viterbican be implemented based on a trace-back or a register-exchangestructure. The soft-output calculation part is mainly a competing pathcomputation unit. Except for low throughputs, this unit is implementedas a register-exchange architecture. A major drawback of registerexchange units is that they do not lend themselves well to hardwarefolding. It is therefore difficult (if not impossible) to obtainefficient SOVA architectures for a wide range of throughputrequirements. Furthermore, the communication performance of the SOVAwith optimal soft update can only be as good as the sub-optimumMaxLogMAP algorithm. For an efficient implementation the MAP algorithmis implemented.

[0069] 2.1. Turbo Decoding

[0070] Decoding Turbo-codes by searching the most likely codeword is fartoo complex. Therefore iterative decoding is advised. The twoconvolutional codes are decoded separately. While doing this, eachdecoder incorporates information that has been gathered by the other.This “gathering of information” is the exchange of soft-output values,where the bit-estimates of one unit are transformed into a prioriinformation for the next. The decoders hence have to be soft-inputsoft-output (SISO) units.

[0071] The confidence in the bit estimation is represented as aLog-Likelihood-Ratio (LLR). $\begin{matrix}{{\Lambda ( d_{k} )} = {\ln \frac{P( {d_{k} = 1} )}{P( {d_{k} = 0} )}}} & (2.1)\end{matrix}$

[0072] The sign shows whether this bit is supposed to be one or zero,whereas the confidence in the decision is represented by the magnitude.

[0073] In order to extract the information that has been gathered duringthe last decoding stage, the systematic and a priori information thatlead to this estimate have to be subtracted. This yields the following.

L ¹(d _(k))=Λ¹(d _(k))−y _(k) ^(s) −L _(deint) ²(d _(k))  (2.2)

L ²(d _(k))=Λ²(d _(k))−y _(kint) ^(s) −L _(int) ¹(d _(k))  (2.3)

[0074] This is called the extrinsic information.

[0075] The confidence of one decoder in a bit to have a certain valuebiases the initial guess of the other.

[0076]FIG. 2 shows such a Turbo-code decoder having two MAP decoders, aninterleaver and a deinterleaver. Feeding the input of one decoder as apriori information input to the next enables the improvement over thedecoding iterations. It also gives Turbo-codes their name, as itresembles the “feedback-of-exhaust” used in turbo combustion engines.Inputs to the decoder are the received channel values (systematic,parity1 and parity2); during the very first MAP1 operation, the a prioriinformation is set to zero.

[0077] 2.2. The Maximum-A-Posteriori (MAP) Algorithm

[0078] The name “Maximum-A-Posteriori” stems from the fact that theestimation of the bits is based on the whole receiver sequence. It isdone after all the information is in.

[0079] Equation 2.4 shows the output of such a MAP decoder.

[0080] Bahl et al. described an efficient algorithm for the MAP decoder,which is based on recursions operating on the trellis in forward andbackward recursion [L. Bahl, J. Cocke, F. Jelinek, and J. Raviv, OptimalDecoding of Linear Codes for Minimizing Symbol Error Rate, IEEETransaction on Information Theory, IT-20:284-287, March 1974]. Thatalgorithm is commonly referred to as MAP or BCJR algorithm:

[0081] Let R_(k)=(y_(k) ^(s),y_(k) ^(p1),L_(k) ²) denote the input ofthe MAP, with {overscore (R)}=(R₁, . . . ,R_(k), . . . R_(N)), where Nis the length of the block, then the BCJR-algorithm computes thea-posteriori probabilities (APP) $\begin{matrix}{{\Lambda ( d_{k} )} = {\ln \frac{\Pr \{ {d_{k} =  1 \middle| \overset{harpoonup}{R} } \}}{\Pr \{ {d_{k} =  0 \middle| \overset{harpoonup}{R} } \}}}} & (2.4)\end{matrix}$

[0082] for each data symbol d_(k) after reception of the symbol sequence{overscore (R)}.

[0083] It is computed using two probabilities: one, that the encoder hasreached state S_(k) ^(m), with mε{1 . . . 2^(M)} after k receivedsymbols:

α_(k)(m)=Pr{(S _(k) ^(m) |R ₀ . . . R _(k−1)}  (2.5)

[0084] and another, that the remainder of the input sequence will leadthe encoder to the final state given the state S_(k+1) ^(m′) at timek+1:

β_(k+1)(m′)=Pr{(R _(k) . . . R _(N) |S _(k+1) ^(m′)}  (2.6)

[0085] For this, the probability of a transition from state S_(k) ^(m)to S_(k+1) ^(m′) has to be known. It is dependent on the code structure,the channel model, the extrinsic information of previous decoding stepsand the received symbols R_(k):

γ(S _(k) ^(m) ,S _(k+1) ^(m′))=Pr{(S _(k) ^(m) ,S _(k+1) ^(m′) |R_(k)}  (2.7)

[0086] Using γ,α and β can be computed recursively by: $\begin{matrix}{{\alpha_{k}( m^{\prime} )} = {\sum\limits_{m}{{a_{k - 1}(m)} \cdot {\gamma ( {S_{k - 1}^{m},S_{k}^{m^{\prime}}} )}}}} & (2.8) \\{{\beta_{k}(m)} = {\sum\limits_{m^{\prime}}{{\beta_{k + 1}( m^{\prime} )} \cdot {\gamma ( {S_{k - 1}^{m},S_{k}^{m^{\prime}}} )}}}} & (2.9)\end{matrix}$

[0087] A known start and final state are necessary for the BCJRalgorithm to perform optimally. If the trellis is not terminated, allstates have to be assumed to have equal probability for k=N.

[0088] The a-posteriori probability itself can be expressed as$\begin{matrix}{{\Lambda ( d_{k} )} = {\ln \frac{\sum\limits_{m}{\sum\limits_{m^{\prime}}{{\gamma ( {S_{k - 1}^{m},S_{k}^{m^{\prime}},{d_{k} = 1}} )} \cdot {\alpha_{k - 1}(m)} \cdot {\beta_{k}( m^{\prime} )}}}}{\sum\limits_{m}{\sum\limits_{m^{\prime}}{{\gamma ( {S_{k - 1}^{m},S_{k}^{m^{\prime}},{d_{k} = 0}} )} \cdot {\alpha_{k - 1}(m)} \cdot {\beta_{k}( m^{\prime} )}}}}}} & (2.10)\end{matrix}$

[0089] The large number of multiplications involved in the computationof the APP makes it less attractive for implementation. Therefore theMAP algorithm has to be transformed to the logarithmic domain, where itbecomes the LogMAP algorithm, which increases numerical stability andeases implementation, while not degrading the error correctionperformance.

[0090] 2.3. The MAP Algorithm in the Logarithm Domain: LogMAP

[0091] The transformation of multiplications into additions is themotivation for defining the MAP algorithm in the Log-Domain. A problemis posed by the additions. Using the Jacobian logarithm, the additionsare substituted by a new operator:

ln(e ^(δ1) +e ^(δ2))=max *(δ1,δ2)=max (δ1,δ2)+ln(1+e ^(-|δ1-δ2|))

[0092] Similar the negative logarithm can be taken, this leads to

min *(δ1,δ2)=min (δ1,δ2)−ln(1+e ^(-|δ1-δ2|)).

[0093] For more than two operands, the max* is applied recursively.Since the operator is associative, a tree-like evaluation can beemployed, which is advantageous for hardware implementation. Thesub-optimal MaxLogMAP algorithm is obtained by using the approximation

max *(δ1,δ2)≈max (δ1,δ2).

[0094] Using the max* operation, the recursions become:

ln(α_(k)(m′))=max_(m) ^(*)(ln(α_(k−1)(m))+ln(γ(S _(k−1) ^(m) ,S _(k)^(m′))),  (2.11)

ln(β_(k)(m))=max_(m) ^(*)(ln(β_(k+1)(m′))+ln(γ(S _(k) ^(m) ,S _(k+1)^(m′)))  (2.12)

[0095] Let ln(α_(k)(m′)) from now on be denoted as {overscore(α)}_(k)(m′) (accordingly for β and γ), then the recursions take theform:

{overscore (α)}_(k)(m′)=max_(m) ^(*)({overscore (α)}_(k−1)(m)+{overscore(γ)}(S _(k−1) ^(m) ,S _(k) ^(m′)),  (2.13)

{overscore (β)}_(k)(m)=max_(m) ^(*)({overscore (β)}_(k+1)(m′)+{overscore(γ)}(S _(k) ^(m) ,S _(k+1) ^(m′)).  (2.14)

[0096] Similar we get:

Λ(d _(k))=max_(m,m′) ^(*)({overscore (γ)}(S _(k−1) ^(m) ,S _(k) ^(m′) ,d_(k)=1)+{overscore (α)}_(k−1)(m)+{overscore (β)}_(k)(m′))−max_(m,m′)^(*)({overscore (γ)}(S _(k−1) ^(m) ,S _(k) ^(m′) ,d _(k)=0)+{overscore(α)}_(k−1)(m)+{overscore (β)}_(k)(m′))  (2.15)

[0097] Computation {overscore (γ)} of includes the estimation of channelvalues and the a priori information. Whereas the conventional method isquite complicated, an optimized branch metric calculation is used. Priorto transmission, every bit is subject to a transformation. Letx_(k)ε{0,1} denote the (coded) bit, then the transmitted value isy_(k)=2·x_(k)+1, hence y_(k)ε{−1,1}.

[0098] Thus the actual mapping is ‘1’→−−1’ and ‘0’→‘1’.

[0099] There are only four different values per k in total the{overscore (γ)} can take, one for every assumption (x_(k)^(s)ε{−1,1},x_(k) ^(p)ε{−1,1}). The code-structure alone determineswhich of them is assigned to which transition. After skipping constantfactors and making additional algebraic transformations we get:

{overscore (γ)}(x _(k) ^(s)=+1,x _(k) ^(p)=+1)=0 $\begin{matrix}{{{\overset{\_}{\gamma}( {{x_{k}^{s} = {+ 1}},{x_{k}^{p} = {- 1}}} )} = \frac{4E_{s}y_{k}^{p}}{N_{0}}}{{\overset{\_}{\gamma}( {{x_{k}^{s} = {- 1}},{x_{k}^{p} = {+ 1}}} )} = {\frac{4E_{s}y_{k}^{p}}{N_{0}} + {L( d_{k} )}}}{{\overset{\_}{\gamma}( {{x_{k}^{s} = {- 1}},{x_{k}^{p} = {- 1}}} )} = {\frac{4E_{s}y_{k}^{p}}{N_{0}} + \frac{4E_{s}y_{k}^{p}}{N_{0}} + {L( d_{k} )}}}} & (2.16)\end{matrix}$

[0100] This simplifies the implementation significantly, as only twoterms have to be computed from the channel and a priori data. One termcan be dropped completely and the last one be computed from the firsttwo. The scaling factor $\frac{4E_{s}}{N_{0}}$

[0101] is multiplied externally by usage of a working point.

3. Dynamic Switching of the Decoding Algorithm

[0102] FIGS. 3 illustrates a channel decoding stage according to apreferred embodiment of the present invention. In this exemplaryembodiment, the channel decoder is illustratively incorporated into thereception chain of a cellular mobile phone TP.

[0103] As shown, the encoded signal is received by the antenna ANT andprocessed by the radio frequency stage REF of the receiver. At theoutput of the REF stage, the signal is converted into the digital domainby an A/D converter. The digital base band signal is then processed by a“rake” demodulator RR, which is generally used in the case of a CDMAsystem.

[0104] Then, the channel decoding stage includes a channel decoder CTDaccording to an embodiment of the present invention. The processingchain also includes a source decoding bloc DCS, which performs thesource decoding treatments.

[0105]FIG. 4 shows in more detail the channel decoder CTD in accordancewith one embodiment of the present invention. The channel decoder CTDcomprises conventional preprocessing means MDM (Multiplexer,Interleaver, and Deinterleaver unit) followed by a turbo-code decoderwhich can controllably implement either a LogMAP algorithm or aMaxLogMAP algorithm, depending on the value of a control signal SC.

[0106] In this exemplary embodiment, the control signal SC controls aswitch SW which activates or deactivates a ROM memory which contains alogarithmic table. More precisely, if a MaxLogMAP algorithm is used, theROM memory is activated, whereas it is not activated if only a LogMAPalgorithm is used. Thus, the implementation overhead for implementing aturbo-code decoder based on a LogMAP algorithm compared to a MaxLogMAPalgorithm is small. The other overhead in silicon is below 2%.

[0107] In principle, the performance of the LogMAP based TC decoder isbetter than the MaxLogMAP based decoder. Since the LogMAP decoder needsa very good channel state estimation in order to scale the inputsymbols, this is only valid if this estimation is possible andavailable. Under bad estimation conditions, the MaxLogMAP based decoderbehaves much more robustly and exceeds the performance of the LogMAPbased decoder. The present invention proposes switching between the twodecoder architectures based on the conditions of the channel stateestimation.

[0108] One way for determining the channel state estimation conditionsis to determine the quality of the Signal to Interference Ratio (SIR).More precisely, an error information representing an error of the SIRestimation is determined and is considered as being a qualityinformation.

[0109] Then, in general, if the error information is lower than apredetermined threshold, the channel state estimation conditions areconsidered as being good and the LogMap algorithm is selected. On thecontrary, the MaxLogMAP algorithm is selected.

[0110] Preferably, this selection is made dynamically. In other words,the channel state conditions are dynamically estimated during thereception of the encoded signal and can be changed during thisreception. Consequently, the selection between the two possiblealgorithms can be changed during the reception, depending for example onthe environment of the mobile phone.

[0111] According to one embodiment of the present invention, the errorinformation representing an error of the SIR estimation can be theabsolute value of the error of the SIR estimation. For example, thisabsolute value can be determined by calculating the variance of the SIRestimation.

[0112] Thus, the channel decoder CTD can comprise means MSR forestimating the SIR. Such means is conventional and well known. Forexample, reference can be made to the paper of the TSG-RAN Working Group1 meeting #4 (Shin-Yokohama, Japan, Apr. 18-20, 1999) entitled “Proposalfor downlink interference measurement method”.

[0113] After having estimated the SIR, the control means CTL, which canbe easily implemented through software, calculates the variance of thisSIR estimation and compares this variance to a predetermined threshold,which in general is preferably smaller than or equal to about 0.5 dB.More preferably, such threshold may be equal to about 0.2 dB.

[0114] However, the inventors have observed that the quality of the SIRestimation, and thus the quality of the channel state estimation, canalso be predicted by knowing the speed of the mobile phone. And,generally, it is easier to estimate the speed of the mobile phone thanto calculate the variance of the SIR.

[0115] Any conventional method for estimating the speed of a mobilephone can be used. For example, the speed of a mobile terminal can beestimated using the normalized autocovariance function of the power ofthe received signal. Another known method, disclosed in EP 1 014 107,uses an autocorelation of the filtered power of the received signal.Reference can also be made to EP 1 026 518.

[0116] An example of selection between a LogMAP algorithm and aMaxLogMAP algorithm based on a speed estimation is illustrated on FIG.5.

[0117] In this exemplary embodiment, after the speed estimation meansMSE has estimated the speed (step 50), the speed V is compared with afirst threshold Th1, for example equal to 5 km/h (step 51).

[0118] If the speed V is lower than the threshold Th1 (e.g.,corresponding to a pedestrian mobile), then the channel state estimationconditions are considered to be good and LogMAP algorithm is selected.

[0119] If the speed V is greater than a second threshold Th2, forexample equal to 25 km/h (step 52), then the speed is considered to betoo high for having good estimation conditions. Thus, the MaxLogMAPalgorithm is selected.

[0120] If the speed V is between the two thresholds Th1 and Th2, thenthe delay profile of the transmission channel is considered (step 53).

[0121] The delay profile gives the number of paths of the multipathtransmission channel, as well as the strength of the fingers of the rakereceiver.

[0122] A variable threshold Th3 is then determined.

[0123] More precisely, if there are only two paths, the threshold Th3 isequal to a first value (15 km/h for example). If there are less than twopaths, the threshold Th3 is equal to a second value (5 km/h forexample). If there are more than two paths, the threshold Th3 is equalto a third value (25 km/h for example) (steps 530, 531 and 532).

[0124] Then, the speed V is compared with the threshold Th3 (step 533).

[0125] If the speed V is lower than Th3, the LogMap algorithm isselected, whereas the MaxLogMAP algorithm is selected in the contrarycase.

[0126] By using a speed estimation algorithm, a dynamic switching of thedecoding algorithm can be implemented. Thus, the overall turbo-decoderTC always works in the best performing mode (either LogMAP or MaxLogMAP)depending on the transmission conditions.

[0127] The present invention can be implemented in hardware, software,or a combination of hardware and software. Any processor, controller, orother apparatus adapted for carrying out the functionality describedherein is suitable. A typical combination of hardware and software couldinclude a general purpose microprocessor (or controller) with a computerprogram that, when loaded and executed, carries out the functionalitydescribed herein.

[0128] The present invention can also be embedded in a computer programproduct, which comprises all the features enabling the implementation ofthe methods described herein, and which—when loaded in an informationprocessing system—is able to carry out these methods. Computer programmeans or computer program in the present context mean any expression, inany language, code or notation, of a set of instructions intended tocause a system having an information processing capability to perform aparticular function either directly or after either or both of thefollowing a) conversion to another language. Such a computer program canbe stored on a computer or machine readable medium allowing data,instructions, messages or message packets, and other machine readableinformation to be read from the medium. The computer or machine readablemedium may include non-volatile memory, such as ROM, Flash memory, Diskdrive memory, CD-ROM, and other permanent storage. Additionally, acomputer or machine readable medium may include, for example, volatilestorage such as RAM, buffers, cache memory, and network circuits.Furthermore, the computer or machine readable medium may comprisecomputer or machine readable information in a transitory state mediumsuch as a network link and/or a network interface, including a wirednetwork or a wireless network, that allow a device to read such computeror machine readable information.

[0129] While there has been illustrated and described what are presentlyconsidered to be the preferred embodiments of the present invention, itwill be understood by those skilled in the art that various othermodifications may be made, and equivalents may be substituted, withoutdeparting from the true scope of the present invention. Additionally,many modifications may be made to adapt a particular situation to theteachings of the present invention without departing from the centralinventive concept described herein. Furthermore, an embodiment of thepresent invention may not include all of the features described above.Therefore, it is intended that the present invention not be limited tothe particular embodiments disclosed, but that the invention include allembodiments falling within the scope of the appended claims.

What is claimed is:
 1. A method of decoding a turbo-code encoded signalin a receiver, said method comprising the steps of: receiving the signalfrom a transmission channel; digitally turbo-code decoding the signal;dynamically determining a quality information representative ofconditions of the channel state estimation; and dynamically comparingthe quality information with a predetermined criteria for defining goodor bad estimation conditions, wherein the step of digitally turbo-codedecoding includes dynamically selecting a Maximum-A-Posteriori algorithmin the logarithmic domain for good estimation conditions, or anapproximation of the Maximum-A-Posteriori algorithm in the logarithmicdomain for bad estimation conditions.
 2. The method according to claim1, wherein the determining step includes determining an errorinformation representing an error of the Signal to Interference Ratio(SIR) estimation, the error information being the quality information,and the predetermined criteria includes at least one predeterminedthreshold.
 3. The method according to claim 2, wherein the errorinformation is an absolute value of the error of the SIR estimation, theMaximum-A-Posteriori algorithm in the logarithmic domain is the LogMAPalgorithm and the approximation of the Maximum-A-Posteriori algorithm inthe logarithmic domain is the MaxLogMAP algorithm, and the LogMAPalgorithm is selected if the absolute value of the error is smaller thanthe threshold and the MaxLogMAP algorithm is selected if the absolutevalue of the error is greater than or equal to the threshold.
 4. Themethod according to claim 3, wherein the threshold is smaller than orequal to about 0.5 dB.
 5. The method according to claim 3, wherein thethreshold is equal to about 0.2 dB.
 6. The method according to claim 2,wherein the receiver is mobile and the determining step includesestimating a mobile receiver speed, the speed being the errorinformation.
 7. The method according to claim 6, wherein the receiver isa cellular mobile phone.
 8. The method according to claim 6, wherein thepredetermined criteria comprises a delay profile of the transmissionchannel.
 9. The method according to claim 6, wherein theMaximum-A-Posteriori algorithm in the logarithmic domain is the LogMAPalgorithm and the approximation of the Maximum-A-Posteriori algorithm inthe logarithmic domain is the MaxLogMAP algorithm, the predeterminedcriteria comprises a first predetermined threshold, a secondpredetermined threshold, which is greater than the first threshold, anda third threshold that depends on a delay profile of the transmissionchannel, if the estimated speed is lower than the first threshold, theLogMAP algorithm is selected, if the estimated speed is greater than thesecond threshold, the MaxLogMAP algorithm is selected, and if theestimated speed is between the first and second thresholds, theestimated speed is compared with the third threshold, and if theestimated speed is lower than the third threshold the LogMAP algorithmis selected, whereas if the estimated speed is greater than the thirdthreshold the MaxLogMAP algorithm is selected.
 10. The method accordingto claim 2, wherein the receiver cooperates with a mobile terminal andthe determining step includes estimating a mobile terminal speed, thespeed being the error information.
 11. The method according to claim 10,wherein the receiver is a base station.
 12. The method according toclaim 10, wherein the predetermined criteria comprises a delay profileof the transmission channel.
 13. The method according to claim 1,wherein the Maximum-A-Posteriori algorithm in the logarithmic domain isthe LogMAP algorithm and the approximation of the Maximum-A-Posteriorialgorithm in the logarithmic domain is the MaxLogMAP algorithm.
 14. Areceiver comprising: reception means for receiving a turbo-code encodedsignal from a transmission channel; digital processing means coupled tothe reception means, the digital processing means including demodulationmeans and turbo-code decoding means, wherein the turbo-code decodingmeans is controllably configurable, in response to a control signal,between a first configuration that implements a Maximum-A-Posteriorialgorithm in the logarithmic domain and a second configuration thatimplements an approximation of the Maximum-A-Posteriori algorithm in thelogarithmic domain, and the digital processing means further includes:auxiliary processing means for determining a quality informationrepresentative of conditions of the channel state estimation; andcontrol means for comparing the quality information with a predeterminedcriteria and delivering the control signal with a first valuecorresponding to good estimation conditions or with a second valuecorresponding to bad estimation conditions, the turbo-code decodingmeans being configured in the first configuration when the controlsignal has the first value, and in the second configuration when thecontrol signal has the second value.
 15. The receiver according to claim14, wherein the auxiliary processing means includes means fordetermining an error information representing an error of the Signal toInterference Ratio (SIR) estimation, the error information being thequality information, and the predetermined criteria includes at leastone predetermined threshold.
 16. The receiver according to claim 15,wherein the error information is the absolute value of the error of theSIR estimation, and the control signal has the first value if theabsolute value of the error is smaller than the threshold, and thesecond value if the absolute value of the error is greater than or equalto the threshold.
 17. The receiver according to claim 16, wherein thethreshold is smaller than or equal to about 0.5 dB.
 18. The receiveraccording to claim 16, wherein the threshold is equal to about 0.2 dB.19. The receiver according to claim 15, wherein the receiver is mobile,and the auxiliary processing means includes speed estimation means fordetermining the speed of the mobile receiver, the speed being the errorinformation.
 20. The receiver according to claim 19, wherein thereceiver is a cellular mobile phone.
 21. The receiver according to claim19, wherein the predetermined criteria comprises a delay profile of thetransmission channel.
 22. The receiver according to claim 19, whereinthe predetermined criteria comprises a first predetermined threshold, asecond predetermined threshold, which is greater than the firstthreshold, and a third threshold that depends on a delay profile of thetransmission channel, if the estimated speed is lower than the firstthreshold, the control signal has the first value, if the estimatedspeed is greater than the second threshold, the control signal has thesecond value, and if the estimated speed is between the first and secondthresholds, the estimated speed is compared with the third threshold,and if the estimated speed is lower than the third threshold the controlsignal has the first value, whereas if the estimated speed is greaterthan the third threshold the control signal has the second value. 23.The receiver according to claim 15, wherein the receiver cooperates witha mobile terminal, and the auxiliary processing means includes speedestimation means for determining the speed of the mobile terminal, thespeed being the error information.
 24. The receiver according to claim23, wherein the receiver is a base station.
 25. The receiver accordingto claim 14, wherein the Maximum-A-Posteriori algorithm in thelogarithmic domain is the LogMAP algorithm and the approximation of theMaximum-A-Posteriori algorithm in the logarithmic domain is theMaxLogMAP algorithm.
 26. A machine-readable medium encoded with aprogram for decoding a turbo-code encoded signal in a receiver, saidprogram containing instructions for performing the steps of: receivingthe signal from a transmission channel; digitally turbo-code decodingthe signal; dynamically determining a quality information representativeof conditions of the channel state estimation; and dynamically comparingthe quality information with a predetermined criteria for defining goodor bad estimation conditions, wherein the step of digitally turbo-codedecoding includes dynamically selecting a Maximum-A-Posteriori algorithmin the logarithmic domain for good estimation conditions, or anapproximation of the Maximum-A-Posteriori algorithm in the logarithmicdomain for bad estimation conditions.
 27. The machine-readable mediumaccording to claim 26, wherein the determining step includes determiningan error information representing an error of the Signal to InterferenceRatio (SIR) estimation, the error information being the qualityinformation, and the predetermined criteria includes at least onepredetermined threshold.
 28. The machine-readable medium according toclaim 26, wherein the Maximum-A-Posteriori algorithm in the logarithmicdomain is the LogMAP algorithm and the approximation of theMaximum-A-Posteriori algorithm in the logarithmic domain is theMaxLogMAP algorithm.